package com.hs.core.utils;

import java.io.BufferedReader;
import java.io.Reader;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.StringTokenizer;

import org.apache.commons.lang.StringUtils;

public class Tools {
	
	
	private static String[] week=new String[]{"��","һ","��","��","��","��","��"};
	
	/**
	 * 
	 * ����:��õ�ǰ���
	 * ����: 
	 * ��������:2006-7-4
	 * @return
	 */
	public static int getYear() {
		return Calendar.getInstance().get(java.util.Calendar.YEAR);
	}
	
	/**
	 * 
	 * ����: ��õ�ǰ�·�
	 * ����: 
	 * ��������:2006-7-4
	 * @return
	 */
	public static int getMonth() {
		return Calendar.getInstance().get(java.util.Calendar.MONTH)+1;	
	}
	 
	/**
	 * 
	 * ����: ָʾһ�������е����ڼ�
	 * ����: wxy
	 * ��������:2006-7-4
	 * @return
	 */
	public static String getWeek() {
		
		return week[Calendar.getInstance().get(java.util.Calendar.DAY_OF_WEEK)-1];	
	}
	/**
	 * 
	 * ����:��õ�ǰ���
	 * ����: 
	 * ��������:2006-7-4
	 * @return
	 */
	public static int getHour() {
		return Calendar.getInstance().get(java.util.Calendar.HOUR_OF_DAY);
	}
	
	/**
	 * 
	 * ����:��õ�ǰ��
	 * ����: 
	 * ��������:2006-7-4
	 * @return
	 */
	public static int getDate() {
		return Calendar.getInstance().get(java.util.Calendar.DATE);
	}
	
	/**
	 * 
	 * ����:��õ�ǰ���
	 * ����: 
	 * ��������:2006-7-4
	 * @return
	 */
	public static int  getMin() {
		return Calendar.getInstance().get(java.util.Calendar.MINUTE);
	}
	
	/**
	 * 
	 * ����:��õ�ǰ���
	 * ����: 
	 * ��������:2006-7-4
	 * @return
	 */
	public static int getSec() {
		return Calendar.getInstance().get(java.util.Calendar.SECOND);
	}
	
	
	
	/**
	 * 
	 * ����: ��õ�ǰ�µĵ�һ��.��:������2006-08-16  �򷵻�:2006-08-01
	 * ����: 
	 * ��������:2006-8-17
	 * @return
	 */
	public static String getThisMOnthOneDay() {
		return new SimpleDateFormat("yyyy-MM-").format(new Date())+"01";
		
	}
	
	/**
	 * 
	 * ����: ��õ�ǰ�µĵ�һ��.��:������2006-08-16  �򷵻�:2006-08-01
	 * ����: 
	 * ��������:2006-8-18
	 * @param ymdStr
	 * @return str
	 */
	public static String getThisMOnthOneDay(String ymdStr) {
		return new SimpleDateFormat("yyyy-MM-").format(Tools.getDateByYmdStr(ymdStr))+"01";
		
	}
	
	/**
	 * 
	 * ����:��õ�ǰ�µ����һ��.��:������2006-08-16  �򷵻�:2006-08-31
	 * ����: 
	 * ��������:2006-8-17
	 * @return
	 */
	public static String getThisMonthEndDay() {
		Calendar c = Calendar.getInstance();   // ��ʱ�����ں�ʱ��
		c.set(Calendar.MONTH,c.get(Calendar.MONTH)+1);
		c.set(Calendar.DAY_OF_MONTH,0);	
		return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());		
	}
	/**
	 * ��������մ����ļ�Ŀ¼
	 * @return
	 */
	public static String buildFileSubdirectory() {
		// subdirectory is composed of year/month
		GregorianCalendar cal = new GregorianCalendar();
		String year = Integer.toString(cal.get(Calendar.YEAR));
		String month = Integer.toString(cal.get(Calendar.MONTH) + 1);
		String day = Integer.toString(cal.get(Calendar.DAY_OF_MONTH));
		return "/" + year + "/" + month + "/" + day;
	}
	
	/**
	 * 
	 * ����:��õ�ǰ�µ����һ��.��:������2006-08-16  �򷵻�:2006-08-31
	 * ����: 
	 * ��������:2006-8-17
	 * @return
	 */
	public static String getThisMonthEndDay(String ymdStr) {
		Calendar c = Calendar.getInstance();
		c.setTime(Tools.getDateByYmdStr(ymdStr));   // ��ʱ�����ں�ʱ��
		c.set(Calendar.MONTH,c.get(Calendar.MONTH)+1);
		c.set(Calendar.DAY_OF_MONTH,0);	
		return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());		
	}



	 /**
		 * ���ѡ�����ǰ4���
		 * 
		 * @param selectedYear
		 * @return
		 */
	public static String getselectYearStr(int selectedYear,String changeEvent) {
		StringBuffer  str = new StringBuffer("<select size=\"1\" onchange=" + changeEvent + " name=\"year\">");
		int year = getYear();
		str.append( "<option value=\"0\" >").append("ȫ�����").append("</option>");
//		System.out.println("year = " + year);
		for (int i = year; i >= 2005; i--) {
			if (i == selectedYear)
				str.append( "<option value=\"" + i + "\" selected>" + i
						+ "</option>\n");
			else
				str.append( "<option value=\"" + i + "\">" + i + "</option>\n");
		}
		
		str.append("</select>");
		
		return str.toString();
	}
	public static String getselectYearStr(int selectedYear,String changeEvent,String selected) {
		StringBuffer  str = new StringBuffer("<select size=\"1\" onchange=" + changeEvent + " name=\"year\">");
		int year = getYear();
		str.append( "<option value=\"0\" >").append("ȫ�����").append("</option>");
//		System.out.println("year = " + year);
		for (int i = year; i >= 2005; i--) {
			if ((i+"").equals(selected))
				str.append( "<option value=\"" + i + "\" selected>" + i
						+ "</option>\n");
			else
				str.append( "<option value=\"" + i + "\">" + i + "</option>\n");
		}
		
		str.append("</select>");
		
		return str.toString();
	}
	
	/**
	 * ��õ�ǰ����Ҫ��ʽ����ǰ
	 * 
	 * @param pattern
	 *            �磺yyyy-MM-dd �� yyyy-MM-dd HH:mm:ss
	 * @return
	 */
	public static String getDateTimeStr(String pattern) {
		return new java.text.SimpleDateFormat(pattern)
				.format(new java.util.Date());

	}

	/**
	 * 
	 * ����:
	 * ����: 
	 * ��������:2006-12-23
	 * @param pattern
	 * @param date
	 * @return
	 */
	public static String getDateTimeStr(String pattern,Date date) {
		return new java.text.SimpleDateFormat(pattern)
		.format(date);
	}
	/**
	 * ��õ�ǰĬ�ϸ�ʽΪ��2005-07-23 33:46:12����ǰ
	 * 
	 * @return
	 */
	public static String getDateTimeStr() {
		return getDateTimeStr("yyyy-MM-dd HH:mm:ss");
	}

	/**
	 * ��õ�ǰ2005-07-23����Ҫ��ʽ����ǰ
	 * @return
	 */
	public static String getDateStr() {
		return getDateTimeStr("yyyy-MM-dd");
	}

	/**
	 * ��õ�ǰ2005-07-23����Ҫ��ʽ����ǰ
	 * @return
	 */
	public static String getYMStr() {
		return getDateTimeStr("yyyy-MM");
	}
	
	/**
	 * 
	 * ����:��õ�ǰ��ʱ�䣬�磺15��15��45
	 * ����: 
	 * ��������:2006-2-22
	 * @return
	 */
	public static String getTimeStr() {
		return getDateTimeStr("HH:mm:ss");

	}

	/**
	 * 
	 * ����: ��һ�����������ʱ�����ʽ������ת���������ո�ʽ�����ڡ�
	 * ����: 
	 * ��������:2006-3-7
	 * @param dateTimeStr
	 * @return
	 */
	public static String getYmdStr(String dateTimeStr) { 
		if (dateTimeStr.indexOf("-") != 0 && dateTimeStr.length() > 10) {
			return dateTimeStr.trim().substring(0, 10);

		} else
			return dateTimeStr;
	}

	/**
	 * 
	 * ����:
	 * ����: 
	 * ��������:2006-6-26
	 * @param ymdStr
	 * @return
	 */
	public static Date getDateByYmdStr(String ymdStr) {
		if (ymdStr == null)
			return null;
		try {
			ymdStr = getFullYmdStr(ymdStr);
			return new java.text.SimpleDateFormat("yyyy-MM-dd").parse(ymdStr);
		} catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}
	
	/**
	 * 
	 * ����: ʱ��ת��
	 * ����: WXY
	 * ��������:2008-1-4
	 * @param ymdStr
	 * @return
	 */
	public static Date getDateYYYYMMDD(String ymdStr) {
		if (ymdStr == null || ymdStr.equals(""))
			return null;
		try {
			return new java.text.SimpleDateFormat("yyyy-MM-dd").parse(ymdStr);
		} catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}
	public static String getDateStringByDate(Date date){
		
		if(null == date)
			return getDateStr();
		return new java.text.SimpleDateFormat("yyyy-MM-dd")
		.format(date);
	} 
	public static String getDateStringByDate1(Date date){
		if(null == date)
			return "";
		return new java.text.SimpleDateFormat("yyyy-MM-dd")
		.format(date);
	} 
	public static String getDateString(Date date){ 
		if(null == date)
			return getDateStr();
		return "";
	} 
	/**
	 * 
	 * ����:
	 * ����: 
	 * ��������:2006-6-26
	 * @param ymdStr
	 * @return
	 */
	public static Date getDateByYmdHmsStr(String ymdhmsStr) {
		if (ymdhmsStr == null)
			return null;
		try {
			String ymdStr=ymdhmsStr.substring(0,ymdhmsStr.lastIndexOf(" "));
			System.out.println("ymdStr====="+ymdStr);
			ymdhmsStr = Tools.getFullYmdStr(ymdStr)+ymdhmsStr.substring(ymdhmsStr.lastIndexOf(" "));
			System.out.println("ymdhmsStr====="+ymdhmsStr);
			return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ymdhmsStr);
		} catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}
	/**
	 * 
	 * ����:
	 * ����: 
	 * ��������:2006-6-26
	 * @param ymdStr
	 * @return
	 */
	private static String getFullYmdStr(String ymdStr) {
		//    	System.out.println("ymdStr��������������"+ymdStr);
		if (ymdStr == null)
			return getDateStr();
		else {
			if (ymdStr.length() <= 7)
				if (ymdStr.endsWith("-"))
					return ymdStr + "01";
				else
					return ymdStr + "-01";

		}
		return ymdStr;

	}

	/**
	 * 
	 * ����:���һ���ȱ�������ո�ʽת����һ��Ϸ������ڸ�ʽ���磺2005-06-06 2006-02
	 * ����: 
	 * ��������:2006-6-30
	 * @param ymdStr  ��ȱ�����ڣ��磺2005-��2006-2����2006-6-6��2006/2/3
	 * @return  ��������ڸ�ʽ��2005��2006-02����2006-06-06     2006-02-03
	 */
	public static String getFullDateStr(String ymdStr) {
		//    	StringBuffer sb=new StringBuffer(ymdStr);
		//    	int bIndex=sb.indexOf("-");
		//    	int eIndex=sb.indexOf("-",bIndex+1);
		//    	
		//    	if(bIndex!=-1 && eIndex!=-1) {

		if (ymdStr == null)
			return ymdStr;
		
		ymdStr = ymdStr.replaceAll("/", "-");
		ymdStr=StringUtils.replace(ymdStr,".","-");
		StringBuffer sb = new StringBuffer("");
		String aa[] = ymdStr.split("-");
		if (aa != null && aa.length > 0)
			for (int i = 0; i < aa.length; i++) {
				if (i == 1 && aa[i].length() == 1)
					aa[i] = "0" + aa[i];
				if (i == 2 && aa[i].length() == 1)
					aa[i] = "0" + aa[i];
				sb.append(aa[i] + "-");
			}
		if (sb.length() > 0) {
			if (sb.toString().charAt(sb.length() - 1) == '-')
				return sb.deleteCharAt(sb.length() - 1).toString();
			else
				return sb.toString();
		} else
			return " ";
	}

	/**
	 * 
	 * ����: ��һ�����������ʱ�����ʽ������ת���������ո�ʽ�����ڡ�
	 * ����: 
	 * ��������:2006-3-7
	 * @param dateTimeStr
	 * @return
	 */
	public static String getYmdStr(Date date) {
		if (date == null)
			return "";
		else
			return new java.text.SimpleDateFormat("yyyy-MM-dd").format(date);
	}

	/**
	 * 
	 * ����: ��һ�����������ʱ�����ʽ������ת���������ո�ʽ�����ڡ�
	 * ����: 
	 * ��������:2006-3-7
	 * @param dateTimeStr
	 * @return
	 */
	public static String getYmStr(Date date) {
		//    	System.out.println("getYmStr====date==="+date);
		return new java.text.SimpleDateFormat("yyyy-MM").format(date);
	}

	/**
	 * 
	 * ����: ��һ�����������ʱ��������ʽ������ת����������ʱ�����ʽ�����ڡ�
	 * ����: 
	 * ��������:2006-3-7
	 * @param dateTimeStr
	 * @return
	 */
	public static String getYmdHmsStr(String dateTimeStr) {
		if (dateTimeStr.indexOf("-") != 0 && dateTimeStr.length() > 10) {
			return dateTimeStr.trim().substring(0, 19);

		} else
			return dateTimeStr;
	}
	
	/**
	 * 
	 * ����: ��һ�����������ʱ��������ʽ������ת����������ʱ�����ʽ�����ڡ�
	 * ����: 
	 * ��������:2006-3-7
	 * @param dateTimeStr
	 * @return
	 */
	public static String getYmdHmsStr(Date date) {
		return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
	}

	/**
	 * ��һ���ַ��Listת����һ��long[] ������.
	 * ����:
	 * ����: 
	 * ��������:2006-3-9
	 * @param list
	 * @return
	 */
	public static long[] listToLongArrays(List list) {
		if (list == null || list.size() < 1)
			return new long[0];
		else {
			long ids[] = new long[list.size()];
			for (int i = 0; i < list.size(); i++) {
				String element = (String) list.get(i);
				ids[i] = Long.parseLong(element);

			}
			return ids;
		}
	}

	/**
	 * 2005-4-7 14:47 һ���ʽ����ݵķ���,���Դ���������λ��ʶ��. <br>
	 * ��:1234.568 ---->1,234.57 ����ʹ�� getFormatDouble(1234.568d,2)
	 * 
	 * @param data
	 *            ��Ҫ�����double���͵����
	 * @param bitNum
	 *            Ҫ�����С����Ϊ��
	 * @return
	 */
	public static String getFormatDouble(double data, int bitNum) {
		String pattern2 = "#0.00";
		String pattern3 = "#0.00#";
		String pattern4 = "#0.000#";
		if (bitNum <= 2)
			return new java.text.DecimalFormat(pattern2).format(data);
		if (bitNum == 3)
			return new java.text.DecimalFormat(pattern3).format(data);
		if (bitNum >= 4)
			return new java.text.DecimalFormat(pattern4).format(data);

		return new java.text.DecimalFormat(pattern2).format(data);
	}

	/**
	 * 2005-4-7 14:47 һ���ʽ����ݵķ���,���Դ���������λ��ʶ��. <br>
	 * ��:1234.568 ---->1,234.57 ����ʹ�� getFormatDouble(1234.568d,2)
	 * 
	 * @param data
	 *            ��Ҫ�����double���͵����
	 * @param bitNum
	 *            Ҫ�����С����Ϊ��
	 * @return
	 */
	public static String getFormatDouble(Double data, int bitNum) {
		if(data == null)
			return "";
		String pattern1="#0.0";
		String pattern2 = "#0.00";
		String pattern3 = "#0.00#";
		String pattern4 = "#0.000#";
		if(bitNum==1)
			return new java.text.DecimalFormat(pattern1).format(data);
		if (bitNum == 2)
			return new java.text.DecimalFormat(pattern2).format(data);
		if (bitNum == 3)
			return new java.text.DecimalFormat(pattern3).format(data);
		if (bitNum >= 4)
			return new java.text.DecimalFormat(pattern4).format(data);

		return new java.text.DecimalFormat(pattern2).format(data);
	}
	
	/**
	 * �������ַ�1,0��Ϊ��,��
	 * @param booleanValue
	 * @return
	 */
	public static String intToCnBoolean(String booleanValue) {
		if (booleanValue.equals("1")) {
			return "��";
		} else {
			return "��";
		}
	}
	
	/**
	 * 
	 * ����: ���һ����ҳ����ʵ����-���html����.
	 * ����: 
	 * ��������:2007-5-29
	 * @param tagName
	 * @param itemNames
	 * @param itemValues
	 * @return
	 */
	public static String getSelectHtmlStr(String tagName,String[] itemNames,String[] itemValues){
//		StringBuffer htmlStr=new StringBuffer("<select size=\"1\" name=\""+tagName+"\">");
//		if(itemNames==null && itemValues==null)
//			return null;
//		if(itemNames.length!=itemValues.length)
//			throw new java.lang.RuntimeException("Select���鳤�Ȳ�һ��!");
//		else{
//			
//			for(int i=0;i<itemNames.length;i++)
//				htmlStr.append( "<option value=\"" + itemValues[i] + "\">" + itemNames[i]
//						+ "</option>\n");
//		}
//		htmlStr.append("</select>");
//		return htmlStr.toString();
		return getSelectHtmlStr(tagName,itemNames,itemValues,null);
	}
	
	/**
	 * 
	 * ����:
	 * ����: 
	 * ��������:2007-5-29
	 * @param tagName
	 * @param itemNames
	 * @param itemValues
	 * @return
	 */
	public static String getSelectHtmlStr(String tagName,String[] itemNames,String[] itemValues,String selectedValue){
		StringBuffer htmlStr=new StringBuffer("<select size=\"1\" name=\""+tagName+"\">");
		if(itemNames==null && itemValues==null)
			return null;
		if(itemNames.length!=itemValues.length)
			throw new java.lang.RuntimeException("Select���鳤�Ȳ�һ��!");
		else{
			
			for(int i=0;i<itemNames.length;i++){
				String selectedStr="";
				if(selectedValue!=null && selectedValue.equals(itemValues[i]))
					selectedStr=" selected";
				htmlStr.append( "<option value=\"" + itemValues[i] + "\""+selectedStr+">" + itemNames[i]
						+ "</option>\n");
			}
		}
		htmlStr.append("</select>");
		return htmlStr.toString();
	}

	/**
	 * �ڲ���oracle Long�ֶ�ʱ ����getCharacterStream�󣬷���һ��trim()����ַ�
	 * 
	 * @param reader
	 * @return
	 */
	public static String getStringFromStream(Reader reader) {
		BufferedReader bufReader = new BufferedReader(reader);
		StringBuffer strBuf = new StringBuffer();
		String line;
		try {
			while ((line = bufReader.readLine()) != null) {
				strBuf.append(line);
			}
			bufReader.close();

		} catch (Exception e) {
			System.out.println("��Readerת����Strʱ�������");
		}
		return strBuf.toString().trim();
	}

	/**
	 * ��String[]���飬����ӳ�һ��string����","���
	 * @param str
	 * @return
	 */
	public static String strArray2Str(String[] str) {
		StringBuffer sb = new StringBuffer();
		if (str == null)
			return null;
		try {
			for (int i = 0; i < str.length; i++) {
				sb.append(str[i]);
				sb.append(",");
			}
		} catch (Exception e) {
			return "";
		}

		String tempStr = sb.toString();
		return tempStr.substring(0, tempStr.length() - 1);
	}
	
	
	
	/**
	 * 
	 * ����:   ��һ��List���ַ�Listת����һ���ַ��,ʹ�÷ָ���.
	 * ����: 
	 * ��������:2006-8-18
	 * @param list
	 * @return
	 */
	public static String getStrFormList(List strList,String splitFlag) {
		String flag="";
		if(splitFlag!=null && splitFlag.length()>0)
			flag=splitFlag;
		StringBuffer str=new StringBuffer("");
		if(strList==null)
			return "";
		for(int i=0;i<strList.size();i++) {
			str.append(strList.get(i)+flag);
		}
//		System.out.println("Str  is :  #"+str+"#");
		if(!flag.equals("") && str.length()>flag.length())
			str.delete(str.length()-flag.length(),str.length());
//		System.out.println("str========"+str);
		return str.toString();
	}
	
	/**
	 * 
	 * ����: ��һ���ַ�������ַ�tת����һ���ַ��,ʹ�÷ָ���.
	 * ����: 
	 * ��������:2007-4-29
	 * @param strArrays
	 * @param splitFlag
	 * @return
	 */
	public static String getStrFormArrays(String[] strArrays,String splitFlag){
		return getStrFormList(Arrays.asList(strArrays),splitFlag);
		
	}
	
	
	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////
	/**
	 * 
	 * ����: ��һ���ַ�,����м�ķָ��,ת����һ��list���ַ�����.
	 * ����: 
	 * ��������:2007-4-29
	 * @param str
	 * @param splitFlag
	 * @return
	 */
	public static List getListFromString(String str,String splitFlag){
		List strList=new ArrayList();
		if(str!=null && splitFlag!=null)
			strList=Arrays.asList(str.split(splitFlag));
		return strList;
	}
	
	/**
	 * 
	 * ����:   ������   aaaaa[1]-------> aaaa,1  ��������ʽ.
	 * ����: 
	 * ��������:2007-4-29
	 * @param nameCode
	 * @return
	 */
	public static String[] getCheckboxNameAndCode(String nameCode){
		String[] nameAndCode=new String[2];
		if(nameCode!=null && nameCode.length()>2){
			int startIndex=nameCode.indexOf("[");
			int endIndex=nameCode.lastIndexOf("]");
			System.out.println("startIndex="+startIndex);
			System.out.println("endIndex="+endIndex);
			if(startIndex!=-1 && endIndex!=-1){
				nameAndCode[0]=nameCode.substring(0,startIndex);
				nameAndCode[1]=nameCode.substring(startIndex+1,endIndex);
			}else{
				nameAndCode[0]="�ַ��ʽ����!";
				nameAndCode[1]="0";
			}
		}
		return nameAndCode;
	}
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	/**
	 * 
	 * ����: �滻�ַ�
	 * ����: wxy
	 * ��������:2006-9-21
	 * @param str
	 * @return
	 */
	public static String getSqlStr(String str){
		if(str!=null){
			String pl="/";
			String p="//";
			str=str.replaceAll(pl,p);
			pl="%";
			p="/%";
			str=str.replaceAll(pl,p);
			pl="_";
			p="/_";
			str=str.replaceAll(pl,p);

		}
		return str;
	}
    
    /**
     * ����:����}��ʱ��ֵ֮���������
     * <br>����: Zhangzhiya<br>
     * ��������:Jan 9, 2007
     * @param before �����ʱ��(��:2006-01-01)
     * @param after  �����ʱ��(��:2006-11-18)
     * @return
     */
    public static int computeIntervalDays(Date before,Date after){
        if(null == before || null == after)return 0;
        long interval=Math.abs(after.getTime() - before.getTime());
        return new Long(interval/(24*60*60*1000)).intValue();
    }
    
    /**
     * 
     * ����: ����ʱ����ϵͳ��ǰʱ��ļ������
     * ����: wxy
     * ��������:2007-1-12
     * @param before
     * @return
     */
    public static int computeIntervalDays(Date before){
    	return  computeIntervalDays(before,new java.util.Date()); 

    }
    
    
    
    
    
    
    
    

	/**
	 * 
	 * ����: �����ı�������ı����е�html���룬���磺< > \r\n �ȵ� ����:  ��������:2007-8-9
	 * 
	 * @param pContent
	 * @return
	 */
	public static String strConvertHtml(String pContent) {
		if(pContent==null){
			return "";
			
		}else{
		StringBuffer buffer = new StringBuffer();
		StringTokenizer token = new StringTokenizer(pContent, "\r\n");
		while (token.hasMoreTokens()) {
			String temp = token.nextToken();
			buffer.append("<BR />" + convert2(temp));
		}
		if(buffer.toString().indexOf("<BR />")==0)
		return buffer.toString().substring(6);
		else
			return buffer.toString();
		}
	}

	/**
	 * 
	 * ����: ����html�е��ַ� ����:  ��������:2007-8-9
	 * 
	 * @param input
	 * @return
	 */
	public static String convert2(String input) {
		if (input == null || input.length() == 0) {
			return input;
		}
		StringBuffer buf = new StringBuffer(input.length() + 6);
		char ch = ' ';
		for (int i = 0; i < input.length(); i++) {
			ch = input.charAt(i);
			if(ch=='"'){
			   buf.append("&quot;");	
			}/*else if(ch=='\''){
				buf.append("&acute;");
	    	}*/else if (ch == '<') {
				buf.append("&lt;");
			} else if (ch == '>') {
				buf.append("&gt;");
			} /*else if (ch == ' ') {
				buf.append("&nbsp;");
			} */else {
				buf.append(ch);
			}
		}
		return buf.toString();
	} 
	
	/**
	 * 
	 * ����:�����ݿ��д洢���ı������͵��ַ������
	 * ����: Administrator
	 * ��������:2007-10-11
	 * @param str
	 * @return
	 */
	public static int getRows(String str,int cols){
		if(str==null || "".equals(str) ){
			return 2;
		}else{
			String[] strs=str.split("\r\n");
			int row=0;
			for(int i=0;i<strs.length;i++){
				if(strs[i].length()/(cols-1)>=1)
				row+=strs[i].length()%(cols-1)==0?strs[i].length()/(cols-1):(strs[i].length()/(cols-1))+1;
			}
			row+=strs.length;
			return row<5?5:row;
		}
	}


	/**
	 * 
	 * ����: ����ʱ���Ƿ���ϵͳʱ��֮ǰ
	 *  �� ���� true ���򷵻�false
	 * ����: WXY
	 * ��������:2008-1-24
	 * @param date
	 * @return
	 */
	public static boolean isAfter(Date date)
	{
		boolean isAfter = false;
		if(date == null)
			return isAfter;
		if((new Date().getTime()  - date.getTime()) >0 )
			isAfter = true;
	   return isAfter;
	}

	/**
	 * ����: ����:  ��������:2006-2-22
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO �Զ���ɷ������
		// System.out.println(Tools.getYmdStr("2005-06-02dsfdfdsafds"));

// System.out.println("getFullStr===" + getFullDateStr("2005-02-06"));
		
// // System.out.println(getThisMonthEndDay());
// List list=new ArrayList();
// list.add("T");
// list.add("T");
// list.add("F");
// Tools.getStrFormList(list," ");;
	 System.out.println(Tools.GetBigMoney(4555678));
	}
   /**
    * ����Сдת��
    * @param moneyDigit
    * @return
    */
	public static String bigMoney(String moneyDigit){
		if(null != moneyDigit && !"null".equalsIgnoreCase(moneyDigit)&&!"".equals(moneyDigit))
			return GetBigMoney(new Double(moneyDigit).doubleValue());
		return "��";
	}
	 /**
     * ����Сдת��
     * @param eSender
     * @return
     */
    private static String  GetBigMoney(double eSender) 
    { 
      double NewMoney; 
      int Index, len, flag; 
      String StrTemp = null; 
      char[] p; 
      String Number[]={"��","Ҽ","��","��","��","��","½","��","��","��"}; 
      String MonetaryUnit[] = {"��","Ǫ","��","ʰ","��","Ǫ","��","ʰ","��","Ǫ","��","ʰ","Ԫ","��","��"} ; 
      NewMoney = Math.abs(eSender); 
      System.out.println(NewMoney); 
      DecimalFormat deciformat; 
        deciformat=(DecimalFormat)DecimalFormat.getInstance(); 
           deciformat.applyPattern("#######"); 
      String m = java.lang.String.valueOf(deciformat.format(NewMoney * 100)); 
       int i; 
       if((i = m.indexOf('.')) != -1) 
         m = m.substring(0, i); 
         p = new char[m.length()]; 
         //p = new char[40]; 
         m.getChars(0, m.length(), p, 0); 
         //len=m.length(); 
      if (NewMoney > 100000000000.00) { 
        StrTemp = ""; // FloatAsComma( NewMoney, False ); 
        return StrTemp; 
      } 
      if (NewMoney < 0.01) { 
        StrTemp = "��"; 
        return StrTemp; 
      } 
      if (eSender<0) { 
        StrTemp = "��"; 
      } 
      else { 
        StrTemp = ""; 
      } 
      flag = 1; 
      len =p.length;  
      for (Index=(15-len);Index<15;Index++)  
      { 
        if (p[Index - 15 + len]!='0')  
        { 
          StrTemp = StrTemp + Number[Integer.parseInt(String.valueOf(p[Index-15+len]))]; 
          StrTemp = StrTemp + MonetaryUnit[Index]; 
        } 
        else  
        { 
          if (Index == 5)  
          { 
            if ((p[Index - 14 + len]!= '0') || (p[Index-13+len] != '0'))  
            { 
              StrTemp = StrTemp + MonetaryUnit[Index + 3]; 
              flag = 0; 
            } 
   
          } 
          else  
          { 
            if ((Index == 12) ||( (Index == 8) && (flag ==1)) || (Index == 4))  
            { 
              StrTemp = StrTemp + MonetaryUnit[Index]; 
            } 
            if ((p[Index-15 + len] != '0') && (Index != 14))  
            { 
              StrTemp = StrTemp +Number[Integer.parseInt(String.valueOf(p[Index-15+len]))]; 
; 
            } 
          } 
        } 
      } 
        if (p[m.length()-1] == '0')  
        { 
          StrTemp = StrTemp + "��"; 
        } 
     return StrTemp; 
  } 
    

	/**
	 * 
	 * ����: �����mo��
	 * ����: WXY
	 * ��������:2008-1-25
	 * @param tate
	 * @param mo
	 * @return
	 */
	public static Date getMoveMonth(Date tate ,int mo)
	{
		if(tate == null)
			return null;
		 Calendar calendar = Calendar.getInstance();
		 calendar.setTime(tate);
		 calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH)+mo);
		 return calendar.getTime();
	}

}
